﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using FirstApp.App_Code;

namespace FirstApp
{
        
        public class ListaKlientow
        {
                AdventureWorksLTEntities dbcontext = new AdventureWorksLTEntities();
                private double _sumaSprzedarzy;

                public double SumaSprzedarzy
                {
                        get { return _sumaSprzedarzy; }
                        set { _sumaSprzedarzy = value; }
                }
                private int _iloscAktywnychKlientow;

                public int IloscAktywnychKlientow
                {
                        get { return _iloscAktywnychKlientow; }
                        set { _iloscAktywnychKlientow = value; }
                }
                private double _iloscKlientow;

                public double IloscKlientow
                {
                        get { return _iloscKlientow; }
                        set { _iloscKlientow = value; }
                }
                private List<Klient> _klienci;

                public List<Klient> Klienci
                {
                        get { return _klienci; }
                        set { _klienci = value; }
                }

                public ListaKlientow()
                {
                        //var zm = from ordr in dbcontext.SalesOrderHeader
                        //         select new { 
                        //                sumaSprzedarzy = dbcontext.SalesOrderHeader.Sum(x => x.TotalDue),
                        //                iloscKlientow = dbcontext.Customer.Select(x => x.CustomerID).Count()
                        //         };
                        _sumaSprzedarzy = (double)dbcontext.SalesOrderHeader.Sum(x => x.TotalDue);
                        _iloscKlientow = dbcontext.Customer.Count();
                        //_sumaSprzedarzy = Convert.ToDouble(zm.Select(x => x.sumaSprzedarzy));
                        var aktywni = ((from Cust in dbcontext.Customer
                                       join Sales in dbcontext.SalesOrderHeader on Cust.CustomerID equals Sales.CustomerID
                                       select Cust.CustomerID).Distinct()).Count();
                        _iloscAktywnychKlientow = aktywni;
                }
                public List<Klient> WyswietlWszystkichPracownikow()
                {
                        List<int> ListaId = dbcontext.Customer.Select(x => x.CustomerID).OrderBy(CustomerID => CustomerID).Skip(666).ToList();

                        List<Klient> LK = new List<Klient>();

                        foreach (int KlientId in ListaId)
                        {
                                LK.Add(new Klient(KlientId));
                        }
                        _klienci = LK;
                        return LK;
                }
        }
}
